package ma.myschool.app.webapp.action;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.context.FacesContext;

import ma.myschool.app.model.AnneeScolaire;
import ma.myschool.app.service.AnneeScolaireManager;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

@Component("appController")
@Scope("session")
public class AppController extends BasePage implements Serializable{
    /**
	 * 
	 */
	private static final long serialVersionUID = -1944912816440517957L;
	
	private final Log log = LogFactory.getLog(getClass());
    private AnneeScolaireManager anneeScolaireManager;
    
    private AnneeScolaire anneeScolaire;
    
    @Autowired
    public void setAnneeScolaireManager(@Qualifier("anneeScolaireManager") AnneeScolaireManager anneeScolaireManager) {
		this.anneeScolaireManager = anneeScolaireManager;
	}


    public List<AnneeScolaire> getAnneeScolaires() {
    	List<AnneeScolaire> anneeScolaires = anneeScolaireManager.getAll();
		return anneeScolaires != null ? sort(anneeScolaires, "anneeScolaire", false, false) : new ArrayList<>();
	}
    
    public AnneeScolaire getAnneeScolaire() {
    	if(anneeScolaire == null){
    		List<AnneeScolaire> anneeScolaires= sort(anneeScolaireManager.getAll(), "anneeScolaire", false, false);
    		anneeScolaire = anneeScolaires.get(0);
    	}
    		
		return anneeScolaire;
	}

	public void setAnneeScolaire(AnneeScolaire anneeScolaire) {
		this.anneeScolaire = anneeScolaireManager.get(anneeScolaire.getId());
	}
	
	public String doAnneeScolaire() {
		setAnneeScolaire(anneeScolaireManager.get(anneeScolaire.getId()));
		
		return "home";
	}
	
	public void handleAnneeScolaireChange() {
		if(anneeScolaire.getId() != null && anneeScolaire.getId() > 0)
			setAnneeScolaire(anneeScolaireManager.get(anneeScolaire.getId()));
		else
			anneeScolaire= null;
	}
}
